package com.tengju.bff.infrastructure.export.convert;

import com.tengju.bff.interfaces.covercharge.entity.vo.ServiceSignQuery;
import com.tengju.export.domain.record.Table;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: 李大仙
 * @date: 2021/8/26 8:40 下午
 */
public class BillServiceSignConvert {
    public static Table convert(List<ServiceSignQuery> dataList) {
        Table table = new Table();
        table.setHeader(buildHeader());
        table.setRecords(buildRecords(dataList));
        return table;
    }

    private static List<List<String>> buildRecords(List<ServiceSignQuery> dataList) {
        List<List<String>> result = new ArrayList<>();
        if (CollectionUtils.isEmpty(dataList)){
            return result;
        }
        int index = 1;
        for (ServiceSignQuery data : dataList) {
            List<String> row = new ArrayList<>();
            row.add(String.valueOf(index));
            if (data.getIdCode() == null) {
                row.add("");
            } else {
                row.add(data.getIdCode().toString());
            }
            if (data.getName() == null) {
                row.add("");
            } else {
                row.add(data.getName());
            }
            if (data.getMobile() == null) {
                row.add("");
            } else {
                row.add(data.getMobile());
            }
            if (data.getCurrentIdentity() == null) {
                row.add("");
            } else {
                row.add(data.getCurrentIdentity());
            }
            if (data.getSignName() == null) {
                row.add("");
            } else {
                row.add(data.getSignName());
            }
            if (data.getIdNumberIdNumber() == null) {
                row.add("");
            } else {
                row.add(data.getIdNumberIdNumber());
            }
            if (data.getSignTime() == null) {
                row.add("");
            } else {
                row.add(data.getSignTime());
            }
            if (data.getIsSigned() == null) {
                row.add("");
            } else {
                row.add(data.getIsSigned());
            }
            if (data.getSubStatus() == null) {
                row.add("");
            } else {
                row.add(data.getSubStatus());
            }
            if (data.getUpdatedTime() == null) {
                row.add("");
            } else {
                row.add(data.getUpdatedTime());
            }
            result.add(row);
            index++;
        }
        return result;
    }

    private static List<String> buildHeader() {
        List<String> headerList = new ArrayList<>();
        headerList.add("序号");
        headerList.add("代理id");
        headerList.add("代理姓名");
        headerList.add("手机号");
        headerList.add("签约合作方式");
        headerList.add("姓名/名称");
        headerList.add("身份证号/税号");
        headerList.add("签约时间");
        headerList.add("是否签约状态");
        headerList.add("子状态");
        headerList.add("更新时间");
        return headerList;
    }
}
